package com.beta.cust.bind.datasync.dto;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 调用企业微信获取部门列表返回的数据组成该DTO<br>
 * 详情见：https://work.weixin.qq.com/api/doc/90000/90135/90208
 */

@Data
@NoArgsConstructor
public class WeixinDepListDTO {

    /**
     * 错误码，0表示成功
     */
    @JSONField(name = "errcode")
    private Integer errcode;

    /**
     * 对返回码的文本描述内容
     */
    @JSONField(name = "errmsg")
    private String errmsg;

    /**
     * 部门列表数据
     */
    @JSONField(name = "department")
    private List<DepartmentDetailDTO> department;

    @Data
    @NoArgsConstructor
    public static class DepartmentDetailDTO {

        /**
         * 创建的部门id
         */
        @JSONField(name = "id")
        private Long id;

        /**
         * 部门名称，代开发自建应用需要管理员授权才返回；此字段从2019年12月30日起，对新创建第三方应用不再返回，2020年6月30日起，对所有历史第三方应用不再返回name，返回的name字段使用id代替，后续第三方仅通讯录应用可获取，未返回名称的情况需要通过通讯录展示组件来展示部门名称
         */
        @JSONField(name = "name")
        private String name;

        /**
         * 英文名称，此字段从2019年12月30日起，对新创建第三方应用不再返回，2020年6月30日起，对所有历史第三方应用不再返回该字段
         */
        @JSONField(name = "name_en")
        private String nameEn;

        /**
         * 父部门id。根部门为1
         */
        @JSONField(name = "parentid")
        private Long parentid;

        /**
         * 在父部门中的次序值。order值大的排序靠前。值范围是[0, 2^32)
         */
        @JSONField(name = "order")
        private Long order;
    }
}
